/**
 * 自定义 404 错误类
 */
class NotFounError extends Error {
  constructor(message) {
    super(message);
    this.name = "NotFoundError";
  }
}
/**
 * 请求成功返回
 * @param res
 * @param message
 * @param data
 * @param code
 */
function success(res, message, data = {}, code = 200) {
  res.header("Cache-Control", "no-cache, no-store, must-revalidate");
  res.header("Pragma", "no-cache");
  res.header("Expires", 0);
  res.status(code).json({
    code,
    status: true,
    message,
    data,
  });
}
/**
 * 错误请求返回
 * @param res
 * @param error
 */
function fail(res, error) {
  if (error.name === "SequelizeValidationError") {
    const errors = error.errors.map((e) => e.message);
    return res.status(400).json({
      status: false,
      message: "请求参数错误！",
      errors,
    });
  }
  if (error.name === "NotFoundError") {
    return res.status(404).json({
      status: false,
      message: "请求参数错误！",
      errors: [error.message],
    });
  }
  res.status(500).json({
    status: false,
    message: "服务器错误！",
    error: [error.message],
  });
}

module.exports = {
  NotFounError,
  success,
  fail,
};
